In machine vision systems (also termed herein “vision systems”), one or more cameras are used to perform vision system process on an object or surface within an imaged scene. These processes can include inspection, decoding of symbology, alignment and a variety of other automated tasks. More particularly, a vision system can be used to inspect a flat object passing through an imaged scene. The scene is typically imaged by one or more vision system cameras that can include internal or external vision system processors that operate associated vision system processes to generate results. One or more of the cameras are calibrated to enable it/them to perform the vision task(s) with sufficient accuracy and reliability. A calibration plate can be employed to calibrate the camera(s), and establish a common (global) coordinate space (also referred to as a coordinate “system”) in which the pixel locations of all cameras are mapped to associated points in the coordinate space, thereby allowing an imaged feature in any camera to be located within the coordinate space. In applications that use a motion stage for guiding the assembly of objects the calibration process can include establishing a relationship between the motion stage (also termed a “motion coordinate space”) and the common coordinate space. Such calibration can be achieved using known “hand-eye” calibration techniques.
A notable task for vision systems is to assist in guiding and verifying the assembly of objects (also termed “workpieces”) by an automated assembly mechanism that can include moving platforms (motion stages) to accurately support a workpiece at an assembly location and a manipulator (e.g. a robot hand or arm that performs a “pick-and-place” operations or another type of motion device/motion stage) to move another workpiece in an “assembly motion” to an overlying alignment location where it is assembled to the workpiece. A particular pick and place operation involves aligning one workpiece with another workpiece. For example, a touch screen can be manipulated by the manipulator over and into a well on a cell phone residing on the motion stage in the pick-and-place operation, where each touch screen is moved from the pick location and deposited at the place location (sometimes termed a “station”) on a waiting cell phone body. Proper and accurate alignment of the touch screen with cellphone body is highly desirable.
Some exemplary systems are initially trained so that each workpiece is in correct alignment with the other workpiece during runtime operation of the system. During train time, the workpieces are positioned at their respective locations/stations so that, when assembled, the assembled workpieces have a desired mutual positional relationship. Following training, during runtime, one or both of the workpieces are repositioned in their respective locations by use of the vision system in control of the associated motion stage at the location, in order to account for any placement or dimensional variation, and then assembled. By adjusting the stage, the workpieces are thereby placed in same mutual (expected) positional relationship as they were at train time. In other exemplary systems, training can be omitted—for example systems where the geometry of the assembled parts can be employed during runtime, such as where a first rectangular object is being centered on a second rectangular object.
Following imaging of the scene with workpieces, features belonging to each workpiece are extracted and mapped to the common coordinate space as part of a process that eventually computes the stage motion parameters that would result in the desired assembly. The mapping to the common coordinate space is due to a calibration process. On many assembly systems, the calibration process includes transferring a special calibration target between locations using the repeatable manipulator that transfers the part and imaging a calibration target at both the locations. This technique has several disadvantages. For example, the pick-and-place gripper that transfers the part may not be able to transfer a calibration target, due to differences in the shape, weight or other characteristics of the workpiece versus the calibration target. That is, a calibration target does not fit the parameters of the gripper. In such systems, the mapping of parameters to the common coordinate space must be specified manually via user input, which often results in sub-optimal calibration. In addition, the motion path followed by the pick-and-place manipulator during calibration versus runtime may differ due to differences in the characteristics of the part and the calibration target, such as differences in thickness or other characteristics. This can introduce calibration errors as it requires variation from the runtime motion steps taken by the manipulator versus the training time motion steps. More generally, it is a further inconvenience for a user to employ a separate calibration target during calibration time due to additional setup steps, etc.
Also disadvantageously, prior techniques for calibrating have relied on certain mechanical or/or iterative trial and error principles that have limitations and/or are inconvenient and time-consuming to implement. For example, in one technique the mechanical system can be constructed so that the relationship between the coordinate space at the first location and the coordinate space at the second location is known and established. This technique limits flexibility and does not account for possible movement or change in position over time. In another technique, an initial estimate of the relationship between the two locations is made and is repeatedly refined by using the quality of the assembled parts. This technique is time consuming and relies upon multiple iterations to achieve desired accuracy.